package com.huirui.server.pojo.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 *
 * @TableName t_coupon
 */
@TableName(value = "t_coupon")
@Data
public class Coupon implements Serializable {
    /**
     * 优惠券ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 优惠券名字
     */
    @TableField(value = "name")
    private String name;

    /**
     * 优惠券发放开始时间
     */
    @TableField(value = "distribution_start_time")
    private LocalDateTime distributionStartTime;

    /**
     * 优惠券发放结束时间
     */
    @TableField(value = "distribution_end_time")
    private LocalDateTime distributionEndTime;

    /**
     * 优惠券类型，0-通用券，1-品类券，2商品券
     */
    @TableField(value = "coupon_type")
    private Integer couponType;

    /**
     * 关联分类ID，逗号隔开
     */
    @TableField(value = "category_ids")
    private String categoryIds;

    /**
     * 关联商品ID，逗号隔开
     */
    @TableField(value = "product_ids")
    private String productIds;

    /**
     * 优惠券面额
     */
    @TableField(value = "denomination")
    private BigDecimal denomination;

    /**
     * 是否有使用门槛，0-无门槛，1-有门槛
     */
    @TableField(value = "has_threshold")
    private Integer hasThreshold;

    /**
     * 使用门槛
     */
    @TableField(value = "threshold")
    private BigDecimal threshold;

    /**
     * 有效期类型，0-领取后N天有效，1-某一个时间有效
     */
    @TableField(value = "expiry_type")
    private Integer expiryType;

    /**
     * 有效天数
     */
    @TableField(value = "valid_days")
    private Integer validDays;

    /**
     * 有效开始时间
     */
    @TableField(value = "available_start_time")
    private LocalDateTime availableStartTime;

    /**
     * 有效结束时间
     */
    @TableField(value = "available_end_time")
    private LocalDateTime availableEndTime;

    /**
     * 是否有数量限制，0-有数量限制，1-无数量限制
     */
    @TableField(value = "has_quantity_limit")
    private Integer hasQuantityLimit;

    /**
     * 数量限制（如果有）
     */
    @TableField(value = "quantity_limit")
    private Integer quantityLimit;

    /**
     * 用户最大领取限制
     */
    @TableField(value = "user_max_collection_limit")
    private Integer userMaxCollectionLimit;

    /**
     * 已领取的优惠券数量
     */
    @TableField(value = "distributed_quantity")
    private Integer distributedQuantity;

    /**
     * 优惠券状态，0-正常，1-关闭，2-过期，3-删除
     */
    @TableField(value = "coupon_status")
    private Integer couponStatus;

    /**
     * 优惠券创建时间
     */
    @TableField(value = "create_time")
    private LocalDateTime createTime;

    /**
     * 优惠券更改时间
     */
    @TableField(value = "update_time")
    private LocalDateTime updateTime;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}